<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>eccodes: ecCodes Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">eccodes
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>C&#160;Interface</span></a></li>
      <li><a href="classeccodes.html"><span>F90&#160;Interface</span></a></li>
      <li class="current"><a href="namespaces.html"><span>Python&#160;Interface</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
      <li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">ecCodes Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This package is the <b>Python</b> interface to <a class="el" href="namespaceec_codes.html" title="This package is the Python interface to ecCodes. ">ecCodes</a>.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab06cc33b116103a54fadb4e2735e579a"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab06cc33b116103a54fadb4e2735e579a">codes_gts_new_from_file</a></td></tr>
<tr class="memdesc:ab06cc33b116103a54fadb4e2735e579a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a GTS message from a file.  <a href="#ab06cc33b116103a54fadb4e2735e579a">More...</a><br/></td></tr>
<tr class="separator:ab06cc33b116103a54fadb4e2735e579a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabd87fd89cfac4d21ec014b838174e3c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aabd87fd89cfac4d21ec014b838174e3c">codes_metar_new_from_file</a></td></tr>
<tr class="memdesc:aabd87fd89cfac4d21ec014b838174e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a METAR message from a file.  <a href="#aabd87fd89cfac4d21ec014b838174e3c">More...</a><br/></td></tr>
<tr class="separator:aabd87fd89cfac4d21ec014b838174e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1788f3653df85dd90ac99f40daf98c4"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab1788f3653df85dd90ac99f40daf98c4">codes_new_from_file</a></td></tr>
<tr class="memdesc:ab1788f3653df85dd90ac99f40daf98c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a message from a file for a given product.  <a href="#ab1788f3653df85dd90ac99f40daf98c4">More...</a><br/></td></tr>
<tr class="separator:ab1788f3653df85dd90ac99f40daf98c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a4c95465d2026ad549920b07150bab"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#af4a4c95465d2026ad549920b07150bab">codes_any_new_from_file</a></td></tr>
<tr class="memdesc:af4a4c95465d2026ad549920b07150bab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a message from a file.  <a href="#af4a4c95465d2026ad549920b07150bab">More...</a><br/></td></tr>
<tr class="separator:af4a4c95465d2026ad549920b07150bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44c10386781390c16f1a567590b33c11"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a44c10386781390c16f1a567590b33c11">codes_bufr_new_from_file</a></td></tr>
<tr class="memdesc:a44c10386781390c16f1a567590b33c11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a BUFR message from a file.  <a href="#a44c10386781390c16f1a567590b33c11">More...</a><br/></td></tr>
<tr class="separator:a44c10386781390c16f1a567590b33c11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80246f356012448955e2e75572a8d210"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210">codes_grib_new_from_file</a></td></tr>
<tr class="memdesc:a80246f356012448955e2e75572a8d210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load in memory a grib message from a file.  <a href="#a80246f356012448955e2e75572a8d210">More...</a><br/></td></tr>
<tr class="separator:a80246f356012448955e2e75572a8d210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c7a1d8a2c7802edd327a35cb35984e7"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a5c7a1d8a2c7802edd327a35cb35984e7">codes_count_in_file</a></td></tr>
<tr class="memdesc:a5c7a1d8a2c7802edd327a35cb35984e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count the messages in a file.  <a href="#a5c7a1d8a2c7802edd327a35cb35984e7">More...</a><br/></td></tr>
<tr class="separator:a5c7a1d8a2c7802edd327a35cb35984e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed3ce5487d6bdd24e1127e638c9cfd54"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aed3ce5487d6bdd24e1127e638c9cfd54">codes_grib_multi_support_on</a></td></tr>
<tr class="memdesc:aed3ce5487d6bdd24e1127e638c9cfd54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn on the support for multiple fields in a single message.  <a href="#aed3ce5487d6bdd24e1127e638c9cfd54">More...</a><br/></td></tr>
<tr class="separator:aed3ce5487d6bdd24e1127e638c9cfd54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaec2118b6fca48e59ded7d2099e81009"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aaec2118b6fca48e59ded7d2099e81009">codes_grib_multi_support_off</a></td></tr>
<tr class="memdesc:aaec2118b6fca48e59ded7d2099e81009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn off the support for multiple fields in a single message.  <a href="#aaec2118b6fca48e59ded7d2099e81009">More...</a><br/></td></tr>
<tr class="separator:aaec2118b6fca48e59ded7d2099e81009"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23859e3fb8802982fe865789d61b181f"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a></td></tr>
<tr class="memdesc:a23859e3fb8802982fe865789d61b181f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the memory for the message referred as msgid.  <a href="#a23859e3fb8802982fe865789d61b181f">More...</a><br/></td></tr>
<tr class="separator:a23859e3fb8802982fe865789d61b181f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37ff4cf406f9b0b0cd6ede563c1d5ab1"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a37ff4cf406f9b0b0cd6ede563c1d5ab1">codes_get_string</a></td></tr>
<tr class="memdesc:a37ff4cf406f9b0b0cd6ede563c1d5ab1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the string value of a key from a message.  <a href="#a37ff4cf406f9b0b0cd6ede563c1d5ab1">More...</a><br/></td></tr>
<tr class="separator:a37ff4cf406f9b0b0cd6ede563c1d5ab1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbb0d241a917a3e726792157c1f5d973"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#acbb0d241a917a3e726792157c1f5d973">codes_set_string</a></td></tr>
<tr class="memdesc:acbb0d241a917a3e726792157c1f5d973"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value for a string key in a grib message.  <a href="#acbb0d241a917a3e726792157c1f5d973">More...</a><br/></td></tr>
<tr class="separator:acbb0d241a917a3e726792157c1f5d973"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec0c4f83da942b94d51a3d8b93ecb6c4"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aec0c4f83da942b94d51a3d8b93ecb6c4">codes_gribex_mode_on</a></td></tr>
<tr class="memdesc:aec0c4f83da942b94d51a3d8b93ecb6c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn on the compatibility mode with gribex.  <a href="#aec0c4f83da942b94d51a3d8b93ecb6c4">More...</a><br/></td></tr>
<tr class="separator:aec0c4f83da942b94d51a3d8b93ecb6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c5256c7e609cf3eedf7d695a4b58a45"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a4c5256c7e609cf3eedf7d695a4b58a45">codes_gribex_mode_off</a></td></tr>
<tr class="memdesc:a4c5256c7e609cf3eedf7d695a4b58a45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turn off the compatibility mode with gribex.  <a href="#a4c5256c7e609cf3eedf7d695a4b58a45">More...</a><br/></td></tr>
<tr class="separator:a4c5256c7e609cf3eedf7d695a4b58a45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13b3e69c2b5ad0ea6b7fd07ac37e367"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#af13b3e69c2b5ad0ea6b7fd07ac37e367">codes_write</a></td></tr>
<tr class="memdesc:af13b3e69c2b5ad0ea6b7fd07ac37e367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a message to a file.  <a href="#af13b3e69c2b5ad0ea6b7fd07ac37e367">More...</a><br/></td></tr>
<tr class="separator:af13b3e69c2b5ad0ea6b7fd07ac37e367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac70e34af931428ba9a4874e0ebf75928"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ac70e34af931428ba9a4874e0ebf75928">codes_grib_multi_write</a></td></tr>
<tr class="memdesc:ac70e34af931428ba9a4874e0ebf75928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a multi field message to a file.  <a href="#ac70e34af931428ba9a4874e0ebf75928">More...</a><br/></td></tr>
<tr class="separator:ac70e34af931428ba9a4874e0ebf75928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a956a6f84f7b418551cd6c4976c970140"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a956a6f84f7b418551cd6c4976c970140">codes_grib_multi_append</a></td></tr>
<tr class="memdesc:a956a6f84f7b418551cd6c4976c970140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append a single field grib message to a multi field grib message.  <a href="#a956a6f84f7b418551cd6c4976c970140">More...</a><br/></td></tr>
<tr class="separator:a956a6f84f7b418551cd6c4976c970140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab07293de06d6ef6c5810ea3f01723884"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab07293de06d6ef6c5810ea3f01723884">codes_get_size</a></td></tr>
<tr class="memdesc:ab07293de06d6ef6c5810ea3f01723884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of an array key.  <a href="#ab07293de06d6ef6c5810ea3f01723884">More...</a><br/></td></tr>
<tr class="separator:ab07293de06d6ef6c5810ea3f01723884"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc7361072916fe6ec52e9cf53f066839"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#adc7361072916fe6ec52e9cf53f066839">codes_get_string_length</a></td></tr>
<tr class="memdesc:adc7361072916fe6ec52e9cf53f066839"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the length of the string version of a key.  <a href="#adc7361072916fe6ec52e9cf53f066839">More...</a><br/></td></tr>
<tr class="separator:adc7361072916fe6ec52e9cf53f066839"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a587af29aac21a816f8ffd327a1fce779"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a587af29aac21a816f8ffd327a1fce779">codes_skip_computed</a></td></tr>
<tr class="memdesc:a587af29aac21a816f8ffd327a1fce779"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the computed keys in a keys iterator.  <a href="#a587af29aac21a816f8ffd327a1fce779">More...</a><br/></td></tr>
<tr class="separator:a587af29aac21a816f8ffd327a1fce779"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b7140ca0dd81372721cffd1d964e4ad"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a4b7140ca0dd81372721cffd1d964e4ad">codes_skip_coded</a></td></tr>
<tr class="memdesc:a4b7140ca0dd81372721cffd1d964e4ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the coded keys in a keys iterator.  <a href="#a4b7140ca0dd81372721cffd1d964e4ad">More...</a><br/></td></tr>
<tr class="separator:a4b7140ca0dd81372721cffd1d964e4ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb01114683ef4aacbf1609eb3a435055"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#acb01114683ef4aacbf1609eb3a435055">codes_skip_edition_specific</a></td></tr>
<tr class="memdesc:acb01114683ef4aacbf1609eb3a435055"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the edition specific keys in a keys iterator.  <a href="#acb01114683ef4aacbf1609eb3a435055">More...</a><br/></td></tr>
<tr class="separator:acb01114683ef4aacbf1609eb3a435055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57f7a5a0f6975e1357e5aa1dc4715e0c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a57f7a5a0f6975e1357e5aa1dc4715e0c">codes_skip_duplicates</a></td></tr>
<tr class="memdesc:a57f7a5a0f6975e1357e5aa1dc4715e0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the duplicate keys in a keys iterator.  <a href="#a57f7a5a0f6975e1357e5aa1dc4715e0c">More...</a><br/></td></tr>
<tr class="separator:a57f7a5a0f6975e1357e5aa1dc4715e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb6f25e55aab91e1cf273403c4151c70"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#afb6f25e55aab91e1cf273403c4151c70">codes_skip_read_only</a></td></tr>
<tr class="memdesc:afb6f25e55aab91e1cf273403c4151c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the read_only keys in a keys iterator.  <a href="#afb6f25e55aab91e1cf273403c4151c70">More...</a><br/></td></tr>
<tr class="separator:afb6f25e55aab91e1cf273403c4151c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eedc94ffbffad66b92d3fccfc1ec692"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a6eedc94ffbffad66b92d3fccfc1ec692">codes_skip_function</a></td></tr>
<tr class="memdesc:a6eedc94ffbffad66b92d3fccfc1ec692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skip the function keys in a keys iterator.  <a href="#a6eedc94ffbffad66b92d3fccfc1ec692">More...</a><br/></td></tr>
<tr class="separator:a6eedc94ffbffad66b92d3fccfc1ec692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3e5c3e1ee4d4b1e2f37862b9de92273"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#af3e5c3e1ee4d4b1e2f37862b9de92273">codes_grib_iterator_new</a></td></tr>
<tr class="memdesc:af3e5c3e1ee4d4b1e2f37862b9de92273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new geoiterator for the given message, using its geometry and values.  <a href="#af3e5c3e1ee4d4b1e2f37862b9de92273">More...</a><br/></td></tr>
<tr class="separator:af3e5c3e1ee4d4b1e2f37862b9de92273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18cdf4111053dc0c387a5fbddb0aaf30"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a18cdf4111053dc0c387a5fbddb0aaf30">codes_grib_iterator_delete</a></td></tr>
<tr class="memdesc:a18cdf4111053dc0c387a5fbddb0aaf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a geoiterator and free memory.  <a href="#a18cdf4111053dc0c387a5fbddb0aaf30">More...</a><br/></td></tr>
<tr class="separator:a18cdf4111053dc0c387a5fbddb0aaf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2bc65694ff09cdd253ef35f760ef841"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ae2bc65694ff09cdd253ef35f760ef841">codes_grib_iterator_next</a></td></tr>
<tr class="memdesc:ae2bc65694ff09cdd253ef35f760ef841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the next value from a geoiterator.  <a href="#ae2bc65694ff09cdd253ef35f760ef841">More...</a><br/></td></tr>
<tr class="separator:ae2bc65694ff09cdd253ef35f760ef841"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a199fb77e1395975be732e46f93b3e337"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new</a></td></tr>
<tr class="memdesc:a199fb77e1395975be732e46f93b3e337"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new iterator on the keys.  <a href="#a199fb77e1395975be732e46f93b3e337">More...</a><br/></td></tr>
<tr class="separator:a199fb77e1395975be732e46f93b3e337"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2eecea5df157516fb60556cbd1283cd"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd">codes_keys_iterator_next</a></td></tr>
<tr class="memdesc:af2eecea5df157516fb60556cbd1283cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advance to the next keys iterator value.  <a href="#af2eecea5df157516fb60556cbd1283cd">More...</a><br/></td></tr>
<tr class="separator:af2eecea5df157516fb60556cbd1283cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83a077fb2dda1e7f1d317039fc7267d1"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1">codes_keys_iterator_delete</a></td></tr>
<tr class="memdesc:a83a077fb2dda1e7f1d317039fc7267d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a keys iterator and free memory.  <a href="#a83a077fb2dda1e7f1d317039fc7267d1">More...</a><br/></td></tr>
<tr class="separator:a83a077fb2dda1e7f1d317039fc7267d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec91e405c936c335c00267eb221c9f91"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aec91e405c936c335c00267eb221c9f91">codes_keys_iterator_get_name</a></td></tr>
<tr class="memdesc:aec91e405c936c335c00267eb221c9f91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of a key from a keys iterator.  <a href="#aec91e405c936c335c00267eb221c9f91">More...</a><br/></td></tr>
<tr class="separator:aec91e405c936c335c00267eb221c9f91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a921bb3a4c69e51a4c276bd6cf37c2d2c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a921bb3a4c69e51a4c276bd6cf37c2d2c">codes_keys_iterator_rewind</a></td></tr>
<tr class="memdesc:a921bb3a4c69e51a4c276bd6cf37c2d2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewind a keys iterator.  <a href="#a921bb3a4c69e51a4c276bd6cf37c2d2c">More...</a><br/></td></tr>
<tr class="separator:a921bb3a4c69e51a4c276bd6cf37c2d2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88f2a86c370e490dae8e684c957022fd"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a88f2a86c370e490dae8e684c957022fd">codes_get_long</a></td></tr>
<tr class="memdesc:a88f2a86c370e490dae8e684c957022fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a key in a grib message as an int.  <a href="#a88f2a86c370e490dae8e684c957022fd">More...</a><br/></td></tr>
<tr class="separator:a88f2a86c370e490dae8e684c957022fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22a427ff4355e63b2c16c491572ea6b5"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a22a427ff4355e63b2c16c491572ea6b5">codes_get_double</a></td></tr>
<tr class="memdesc:a22a427ff4355e63b2c16c491572ea6b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a key in a grib message as a float.  <a href="#a22a427ff4355e63b2c16c491572ea6b5">More...</a><br/></td></tr>
<tr class="separator:a22a427ff4355e63b2c16c491572ea6b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae623fa09d65a3f699026a86d0e4864da"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ae623fa09d65a3f699026a86d0e4864da">codes_set_long</a></td></tr>
<tr class="memdesc:ae623fa09d65a3f699026a86d0e4864da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the integer value for a key in a grib message.  <a href="#ae623fa09d65a3f699026a86d0e4864da">More...</a><br/></td></tr>
<tr class="separator:ae623fa09d65a3f699026a86d0e4864da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa619f32357c9107b5b6f96ad1fee4232"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aa619f32357c9107b5b6f96ad1fee4232">codes_set_double</a></td></tr>
<tr class="memdesc:aa619f32357c9107b5b6f96ad1fee4232"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the double value for a key in a grib message.  <a href="#aa619f32357c9107b5b6f96ad1fee4232">More...</a><br/></td></tr>
<tr class="separator:aa619f32357c9107b5b6f96ad1fee4232"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643c58a9acad239c081794c74a5b86d9"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a643c58a9acad239c081794c74a5b86d9">codes_new_from_samples</a></td></tr>
<tr class="memdesc:a643c58a9acad239c081794c74a5b86d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new valid message from a sample for a given product.  <a href="#a643c58a9acad239c081794c74a5b86d9">More...</a><br/></td></tr>
<tr class="separator:a643c58a9acad239c081794c74a5b86d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c476c5e2dfefa3693df1065e9bf1665"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a1c476c5e2dfefa3693df1065e9bf1665">codes_grib_new_from_samples</a></td></tr>
<tr class="memdesc:a1c476c5e2dfefa3693df1065e9bf1665"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new valid GRIB message from a sample.  <a href="#a1c476c5e2dfefa3693df1065e9bf1665">More...</a><br/></td></tr>
<tr class="separator:a1c476c5e2dfefa3693df1065e9bf1665"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae042f8fe1cc86718ce658f3b992c87a2"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ae042f8fe1cc86718ce658f3b992c87a2">codes_bufr_new_from_samples</a></td></tr>
<tr class="memdesc:ae042f8fe1cc86718ce658f3b992c87a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new valid BUFR message from a sample.  <a href="#ae042f8fe1cc86718ce658f3b992c87a2">More...</a><br/></td></tr>
<tr class="separator:ae042f8fe1cc86718ce658f3b992c87a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ba2700ed57b0a155f7dd76f6b1d8ab9"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a3ba2700ed57b0a155f7dd76f6b1d8ab9">codes_bufr_copy_data</a></td></tr>
<tr class="memdesc:a3ba2700ed57b0a155f7dd76f6b1d8ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy data values from a BUFR message msgid_src to another message msgid_dst.  <a href="#a3ba2700ed57b0a155f7dd76f6b1d8ab9">More...</a><br/></td></tr>
<tr class="separator:a3ba2700ed57b0a155f7dd76f6b1d8ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab49cb36625cd87b9d898844b1df32516"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab49cb36625cd87b9d898844b1df32516">codes_clone</a></td></tr>
<tr class="memdesc:ab49cb36625cd87b9d898844b1df32516"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a copy of a message.  <a href="#ab49cb36625cd87b9d898844b1df32516">More...</a><br/></td></tr>
<tr class="separator:ab49cb36625cd87b9d898844b1df32516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac18c28cc7bd146dad986e03511fb7340"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ac18c28cc7bd146dad986e03511fb7340">codes_set_double_array</a></td></tr>
<tr class="memdesc:ac18c28cc7bd146dad986e03511fb7340"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of the key to a double array.  <a href="#ac18c28cc7bd146dad986e03511fb7340">More...</a><br/></td></tr>
<tr class="separator:ac18c28cc7bd146dad986e03511fb7340"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a441ff456dc9990951bf242f4d542713a"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a441ff456dc9990951bf242f4d542713a">codes_get_double_array</a></td></tr>
<tr class="memdesc:a441ff456dc9990951bf242f4d542713a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the key as a NumPy array of doubles.  <a href="#a441ff456dc9990951bf242f4d542713a">More...</a><br/></td></tr>
<tr class="separator:a441ff456dc9990951bf242f4d542713a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c08a280c84117684dfe5705dfad29f5"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a5c08a280c84117684dfe5705dfad29f5">codes_get_string_array</a></td></tr>
<tr class="memdesc:a5c08a280c84117684dfe5705dfad29f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of the key as a list of strings.  <a href="#a5c08a280c84117684dfe5705dfad29f5">More...</a><br/></td></tr>
<tr class="separator:a5c08a280c84117684dfe5705dfad29f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54b35eededa62b2cb3a32b90060c0f2c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a54b35eededa62b2cb3a32b90060c0f2c">codes_set_string_array</a></td></tr>
<tr class="memdesc:a54b35eededa62b2cb3a32b90060c0f2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of the key to a string array.  <a href="#a54b35eededa62b2cb3a32b90060c0f2c">More...</a><br/></td></tr>
<tr class="separator:a54b35eededa62b2cb3a32b90060c0f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59e415f83b7f26b4575a5700ece65c14"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a59e415f83b7f26b4575a5700ece65c14">codes_set_long_array</a></td></tr>
<tr class="memdesc:a59e415f83b7f26b4575a5700ece65c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of the key to an integer array.  <a href="#a59e415f83b7f26b4575a5700ece65c14">More...</a><br/></td></tr>
<tr class="separator:a59e415f83b7f26b4575a5700ece65c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a680c8ecbf2104d69083c68ea6184192d"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a680c8ecbf2104d69083c68ea6184192d">codes_get_long_array</a></td></tr>
<tr class="memdesc:a680c8ecbf2104d69083c68ea6184192d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the integer array of values for a key from a grib message.  <a href="#a680c8ecbf2104d69083c68ea6184192d">More...</a><br/></td></tr>
<tr class="separator:a680c8ecbf2104d69083c68ea6184192d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b1fb93a9f550c971a7e08ca16bb5100"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a0b1fb93a9f550c971a7e08ca16bb5100">codes_grib_multi_new</a></td></tr>
<tr class="memdesc:a0b1fb93a9f550c971a7e08ca16bb5100"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new multi field and return its id.  <a href="#a0b1fb93a9f550c971a7e08ca16bb5100">More...</a><br/></td></tr>
<tr class="separator:a0b1fb93a9f550c971a7e08ca16bb5100"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e9477394be21ac60be3d6841660c137"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a1e9477394be21ac60be3d6841660c137">codes_grib_multi_release</a></td></tr>
<tr class="memdesc:a1e9477394be21ac60be3d6841660c137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a multi field from memory.  <a href="#a1e9477394be21ac60be3d6841660c137">More...</a><br/></td></tr>
<tr class="separator:a1e9477394be21ac60be3d6841660c137"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c83d2b9572083c7a83c9c5d39010b14"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a6c83d2b9572083c7a83c9c5d39010b14">codes_copy_namespace</a></td></tr>
<tr class="memdesc:a6c83d2b9572083c7a83c9c5d39010b14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the value of all the keys belonging to a namespace from the source message to the destination message.  <a href="#a6c83d2b9572083c7a83c9c5d39010b14">More...</a><br/></td></tr>
<tr class="separator:a6c83d2b9572083c7a83c9c5d39010b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae89dc44888bfbba102e6c9332839fc51"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ae89dc44888bfbba102e6c9332839fc51">codes_index_new_from_file</a></td></tr>
<tr class="memdesc:ae89dc44888bfbba102e6c9332839fc51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new index from a file.  <a href="#ae89dc44888bfbba102e6c9332839fc51">More...</a><br/></td></tr>
<tr class="separator:ae89dc44888bfbba102e6c9332839fc51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c18ea67e5ce00500824676691b4bc4a"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a1c18ea67e5ce00500824676691b4bc4a">codes_index_add_file</a></td></tr>
<tr class="memdesc:a1c18ea67e5ce00500824676691b4bc4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a file to an index.  <a href="#a1c18ea67e5ce00500824676691b4bc4a">More...</a><br/></td></tr>
<tr class="separator:a1c18ea67e5ce00500824676691b4bc4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5a40e31f81dd4cdddf8ddc71e833395"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ae5a40e31f81dd4cdddf8ddc71e833395">codes_index_release</a></td></tr>
<tr class="memdesc:ae5a40e31f81dd4cdddf8ddc71e833395"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an index.  <a href="#ae5a40e31f81dd4cdddf8ddc71e833395">More...</a><br/></td></tr>
<tr class="separator:ae5a40e31f81dd4cdddf8ddc71e833395"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9369968f436ad85084ec1d48e9324c7"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab9369968f436ad85084ec1d48e9324c7">codes_index_get_size</a></td></tr>
<tr class="memdesc:ab9369968f436ad85084ec1d48e9324c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of distinct values for the index key.  <a href="#ab9369968f436ad85084ec1d48e9324c7">More...</a><br/></td></tr>
<tr class="separator:ab9369968f436ad85084ec1d48e9324c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeaf2ac58b4a90bd09595986d49228d7c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aeaf2ac58b4a90bd09595986d49228d7c">codes_index_get_long</a></td></tr>
<tr class="memdesc:aeaf2ac58b4a90bd09595986d49228d7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#aeaf2ac58b4a90bd09595986d49228d7c">More...</a><br/></td></tr>
<tr class="separator:aeaf2ac58b4a90bd09595986d49228d7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19b8c07a5ab06944488e66ce434a615b"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a19b8c07a5ab06944488e66ce434a615b">codes_index_get_string</a></td></tr>
<tr class="memdesc:a19b8c07a5ab06944488e66ce434a615b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#a19b8c07a5ab06944488e66ce434a615b">More...</a><br/></td></tr>
<tr class="separator:a19b8c07a5ab06944488e66ce434a615b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab28f95174ea3e8eb760d4019598ec9e6"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab28f95174ea3e8eb760d4019598ec9e6">codes_index_get_double</a></td></tr>
<tr class="memdesc:ab28f95174ea3e8eb760d4019598ec9e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of the key in argument contained in the index.  <a href="#ab28f95174ea3e8eb760d4019598ec9e6">More...</a><br/></td></tr>
<tr class="separator:ab28f95174ea3e8eb760d4019598ec9e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada63dc27281c249035da5b54e6ec0966"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ada63dc27281c249035da5b54e6ec0966">codes_index_select_long</a></td></tr>
<tr class="memdesc:ada63dc27281c249035da5b54e6ec0966"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#ada63dc27281c249035da5b54e6ec0966">More...</a><br/></td></tr>
<tr class="separator:ada63dc27281c249035da5b54e6ec0966"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98ef64298972c19d87f4fa54b125a268"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a98ef64298972c19d87f4fa54b125a268">codes_index_select_double</a></td></tr>
<tr class="memdesc:a98ef64298972c19d87f4fa54b125a268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#a98ef64298972c19d87f4fa54b125a268">More...</a><br/></td></tr>
<tr class="separator:a98ef64298972c19d87f4fa54b125a268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9fa4123658007a2362baa9afd055063"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#af9fa4123658007a2362baa9afd055063">codes_index_select_string</a></td></tr>
<tr class="memdesc:af9fa4123658007a2362baa9afd055063"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#af9fa4123658007a2362baa9afd055063">More...</a><br/></td></tr>
<tr class="separator:af9fa4123658007a2362baa9afd055063"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fc3995f61a5f34933afd0aeb6427bf6"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a6fc3995f61a5f34933afd0aeb6427bf6">codes_new_from_index</a></td></tr>
<tr class="memdesc:a6fc3995f61a5f34933afd0aeb6427bf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new handle from an index after having selected the key values.  <a href="#a6fc3995f61a5f34933afd0aeb6427bf6">More...</a><br/></td></tr>
<tr class="separator:a6fc3995f61a5f34933afd0aeb6427bf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a3c2d7800aa28297e3a9a11c4f6c0f"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#aa1a3c2d7800aa28297e3a9a11c4f6c0f">codes_get_message_size</a></td></tr>
<tr class="memdesc:aa1a3c2d7800aa28297e3a9a11c4f6c0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of a coded message.  <a href="#aa1a3c2d7800aa28297e3a9a11c4f6c0f">More...</a><br/></td></tr>
<tr class="separator:aa1a3c2d7800aa28297e3a9a11c4f6c0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72cc99e87c999a3cd225323fdcddfad7"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a72cc99e87c999a3cd225323fdcddfad7">codes_get_message_offset</a></td></tr>
<tr class="memdesc:a72cc99e87c999a3cd225323fdcddfad7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the offset of a coded message.  <a href="#a72cc99e87c999a3cd225323fdcddfad7">More...</a><br/></td></tr>
<tr class="separator:a72cc99e87c999a3cd225323fdcddfad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b085fe4c2ea0090a74959b396b2287f"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a3b085fe4c2ea0090a74959b396b2287f">codes_get_double_element</a></td></tr>
<tr class="memdesc:a3b085fe4c2ea0090a74959b396b2287f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get as double the i-th element of the "key" array.  <a href="#a3b085fe4c2ea0090a74959b396b2287f">More...</a><br/></td></tr>
<tr class="separator:a3b085fe4c2ea0090a74959b396b2287f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0708f169680a9b753789a3d61f7f9ef"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#af0708f169680a9b753789a3d61f7f9ef">codes_get_double_elements</a></td></tr>
<tr class="memdesc:af0708f169680a9b753789a3d61f7f9ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get as double array the elements of the "key" array whose indexes are listed in the input array.  <a href="#af0708f169680a9b753789a3d61f7f9ef">More...</a><br/></td></tr>
<tr class="separator:af0708f169680a9b753789a3d61f7f9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8558de4f563b57fe8104d024eb90e7d2"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a8558de4f563b57fe8104d024eb90e7d2">codes_get_elements</a></td></tr>
<tr class="memdesc:a8558de4f563b57fe8104d024eb90e7d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the elements of the key array for the indexes specified in the input.  <a href="#a8558de4f563b57fe8104d024eb90e7d2">More...</a><br/></td></tr>
<tr class="separator:a8558de4f563b57fe8104d024eb90e7d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affddd8311b1127306fa02ce26023d89e"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#affddd8311b1127306fa02ce26023d89e">codes_set_missing</a></td></tr>
<tr class="memdesc:affddd8311b1127306fa02ce26023d89e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set as missing the value for a key in a grib message.  <a href="#affddd8311b1127306fa02ce26023d89e">More...</a><br/></td></tr>
<tr class="separator:affddd8311b1127306fa02ce26023d89e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a997587cb4079552273d224fd3434463b"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a997587cb4079552273d224fd3434463b">codes_set_key_vals</a></td></tr>
<tr class="memdesc:a997587cb4079552273d224fd3434463b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the values for several keys at once in a grib message.  <a href="#a997587cb4079552273d224fd3434463b">More...</a><br/></td></tr>
<tr class="separator:a997587cb4079552273d224fd3434463b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dd162c68a1326619a34b45e56fdb46c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a2dd162c68a1326619a34b45e56fdb46c">codes_is_missing</a></td></tr>
<tr class="memdesc:a2dd162c68a1326619a34b45e56fdb46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the value of a key is MISSING.  <a href="#a2dd162c68a1326619a34b45e56fdb46c">More...</a><br/></td></tr>
<tr class="separator:a2dd162c68a1326619a34b45e56fdb46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbc403f07e0bcc151d8b0fb1365492ff"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#adbc403f07e0bcc151d8b0fb1365492ff">codes_is_defined</a></td></tr>
<tr class="memdesc:adbc403f07e0bcc151d8b0fb1365492ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a key is defined (exists)  <a href="#adbc403f07e0bcc151d8b0fb1365492ff">More...</a><br/></td></tr>
<tr class="separator:adbc403f07e0bcc151d8b0fb1365492ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a134bac0edaf47f29051ad905a30fb63e"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest</a></td></tr>
<tr class="memdesc:a134bac0edaf47f29051ad905a30fb63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the nearest grid point or the nearest four grid points to a given latitude/longitude.  <a href="#a134bac0edaf47f29051ad905a30fb63e">More...</a><br/></td></tr>
<tr class="separator:a134bac0edaf47f29051ad905a30fb63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1250285cb0770393bf6078f3ee3340a2"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a1250285cb0770393bf6078f3ee3340a2">codes_get_native_type</a></td></tr>
<tr class="memdesc:a1250285cb0770393bf6078f3ee3340a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the native type of a key.  <a href="#a1250285cb0770393bf6078f3ee3340a2">More...</a><br/></td></tr>
<tr class="separator:a1250285cb0770393bf6078f3ee3340a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ba4d3b6473499af0581cf52eb4cad0b"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get</a></td></tr>
<tr class="memdesc:a1ba4d3b6473499af0581cf52eb4cad0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the value of a key in a grib message.  <a href="#a1ba4d3b6473499af0581cf52eb4cad0b">More...</a><br/></td></tr>
<tr class="separator:a1ba4d3b6473499af0581cf52eb4cad0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a648bae4beadb6a82698da40e08323be9"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a648bae4beadb6a82698da40e08323be9">codes_get_array</a></td></tr>
<tr class="memdesc:a648bae4beadb6a82698da40e08323be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the contents of an array key.  <a href="#a648bae4beadb6a82698da40e08323be9">More...</a><br/></td></tr>
<tr class="separator:a648bae4beadb6a82698da40e08323be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0af74e12fba25379db678363f5bdafb3"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a0af74e12fba25379db678363f5bdafb3">codes_get_values</a></td></tr>
<tr class="memdesc:a0af74e12fba25379db678363f5bdafb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve the contents of the 'values' key for a GRIB message. <a href="#a0af74e12fba25379db678363f5bdafb3">More...</a><br/></td></tr>
<tr class="separator:a0af74e12fba25379db678363f5bdafb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc699d0bb7a7dded968ee0111342ffd0"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#abc699d0bb7a7dded968ee0111342ffd0">codes_set_values</a></td></tr>
<tr class="memdesc:abc699d0bb7a7dded968ee0111342ffd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the contents of the 'values' key.  <a href="#abc699d0bb7a7dded968ee0111342ffd0">More...</a><br/></td></tr>
<tr class="separator:abc699d0bb7a7dded968ee0111342ffd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb5cff8e4911614c8b04032fb014ea07"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set</a></td></tr>
<tr class="memdesc:abb5cff8e4911614c8b04032fb014ea07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value for a scalar key in a grib message.  <a href="#abb5cff8e4911614c8b04032fb014ea07">More...</a><br/></td></tr>
<tr class="separator:abb5cff8e4911614c8b04032fb014ea07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e25a749b9cffb9b4b391cde66a3333c"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a1e25a749b9cffb9b4b391cde66a3333c">codes_set_array</a></td></tr>
<tr class="memdesc:a1e25a749b9cffb9b4b391cde66a3333c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value for an array key in a message.  <a href="#a1e25a749b9cffb9b4b391cde66a3333c">More...</a><br/></td></tr>
<tr class="separator:a1e25a749b9cffb9b4b391cde66a3333c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a267636dba6361f74b330275a1f8e1ed7"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a267636dba6361f74b330275a1f8e1ed7">codes_index_get</a></td></tr>
<tr class="memdesc:a267636dba6361f74b330275a1f8e1ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the distinct values of an index key.  <a href="#a267636dba6361f74b330275a1f8e1ed7">More...</a><br/></td></tr>
<tr class="separator:a267636dba6361f74b330275a1f8e1ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92041c59bf04e6db88395077802dfe74"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a92041c59bf04e6db88395077802dfe74">codes_index_select</a></td></tr>
<tr class="memdesc:a92041c59bf04e6db88395077802dfe74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the message subset with key==value.  <a href="#a92041c59bf04e6db88395077802dfe74">More...</a><br/></td></tr>
<tr class="separator:a92041c59bf04e6db88395077802dfe74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32c66888832215b2860535729ee616f8"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a32c66888832215b2860535729ee616f8">codes_index_write</a></td></tr>
<tr class="memdesc:a32c66888832215b2860535729ee616f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write an index to a file for later reuse.  <a href="#a32c66888832215b2860535729ee616f8">More...</a><br/></td></tr>
<tr class="separator:a32c66888832215b2860535729ee616f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13866152bfd07b8cd418f6cf8c73d7ab"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a13866152bfd07b8cd418f6cf8c73d7ab">codes_index_read</a></td></tr>
<tr class="memdesc:a13866152bfd07b8cd418f6cf8c73d7ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads an index previously saved with <a class="el" href="namespaceec_codes.html#a32c66888832215b2860535729ee616f8">codes_index_write</a> to a file.  <a href="#a13866152bfd07b8cd418f6cf8c73d7ab">More...</a><br/></td></tr>
<tr class="separator:a13866152bfd07b8cd418f6cf8c73d7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85e89c8eae4fb209ae0a7c566e4a2cb1"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a85e89c8eae4fb209ae0a7c566e4a2cb1">codes_no_fail_on_wrong_length</a></td></tr>
<tr class="memdesc:a85e89c8eae4fb209ae0a7c566e4a2cb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do not fail if the message has the wrong length.  <a href="#a85e89c8eae4fb209ae0a7c566e4a2cb1">More...</a><br/></td></tr>
<tr class="separator:a85e89c8eae4fb209ae0a7c566e4a2cb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae71963dcd0256ccf5bd849f1f6643f38"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ae71963dcd0256ccf5bd849f1f6643f38">codes_gts_header</a></td></tr>
<tr class="memdesc:ae71963dcd0256ccf5bd849f1f6643f38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the GTS header on/off.  <a href="#ae71963dcd0256ccf5bd849f1f6643f38">More...</a><br/></td></tr>
<tr class="separator:ae71963dcd0256ccf5bd849f1f6643f38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add6a557c085ea401fc9529ed140025ef"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#add6a557c085ea401fc9529ed140025ef">codes_get_api_version</a></td></tr>
<tr class="memdesc:add6a557c085ea401fc9529ed140025ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the api version.  <a href="#add6a557c085ea401fc9529ed140025ef">More...</a><br/></td></tr>
<tr class="separator:add6a557c085ea401fc9529ed140025ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f446397a9956ed5518ff6461fcc17f0"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a0f446397a9956ed5518ff6461fcc17f0">codes_get_message</a></td></tr>
<tr class="memdesc:a0f446397a9956ed5518ff6461fcc17f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the binary message.  <a href="#a0f446397a9956ed5518ff6461fcc17f0">More...</a><br/></td></tr>
<tr class="separator:a0f446397a9956ed5518ff6461fcc17f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b42a0c20ab81efa5a214dacc0b75d58"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a8b42a0c20ab81efa5a214dacc0b75d58">codes_new_from_message</a></td></tr>
<tr class="memdesc:a8b42a0c20ab81efa5a214dacc0b75d58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a grib handle from a message in memory.  <a href="#a8b42a0c20ab81efa5a214dacc0b75d58">More...</a><br/></td></tr>
<tr class="separator:a8b42a0c20ab81efa5a214dacc0b75d58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63f59e45ba10997c9e30bf63ea5f66e0"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#a63f59e45ba10997c9e30bf63ea5f66e0">codes_set_definitions_path</a></td></tr>
<tr class="memdesc:a63f59e45ba10997c9e30bf63ea5f66e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the definitions path.  <a href="#a63f59e45ba10997c9e30bf63ea5f66e0">More...</a><br/></td></tr>
<tr class="separator:a63f59e45ba10997c9e30bf63ea5f66e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7f299aaed48129491cc365a8ca289c2"><td class="memItemLeft" align="right" valign="top">def&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceec_codes.html#ab7f299aaed48129491cc365a8ca289c2">codes_set_samples_path</a></td></tr>
<tr class="memdesc:ab7f299aaed48129491cc365a8ca289c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the samples path.  <a href="#ab7f299aaed48129491cc365a8ca289c2">More...</a><br/></td></tr>
<tr class="separator:ab7f299aaed48129491cc365a8ca289c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This package is the <b>Python</b> interface to <a class="el" href="namespaceec_codes.html" title="This package is the Python interface to ecCodes. ">ecCodes</a>. </p>
<p>It offers almost one-to-one bindings to the C API functions.</p>
<p>The Python interface to <a class="el" href="namespaceec_codes.html" title="This package is the Python interface to ecCodes. ">ecCodes</a> uses the <a href="http://numpy.scipy.org/"><b>NumPy</b></a> package as the container of choice for the possible arrays of values that can be encoded/decoded in and from a message. Numpy is a package used for scientific computing in Python and an efficient container for generic data.</p>
<p>The Python interface can be added via:<br/>
 </p>
<div class="fragment"><div class="line">    pip3 install eccodes</div>
<div class="line">or</div>
<div class="line">    pip3 install --install-option="--prefix=/path/to/where/you/install/eccodes" eccodes</div>
</div><!-- fragment --><p>When this is enabed, then the system Python will be used to build the interface.</p>
<p><em>Requirements:</em> </p>
<pre class="fragment">- Python 3.5 or higher
- NumPy</pre> </div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="af4a4c95465d2026ad549920b07150bab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_any_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>headers_only</em> = <code>False</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a message from a file. </p>
<p>The message can be accessed through its id and will be available<br/>
 until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.<br/>
 <b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_get_keys" target="_blank">grib_get_keys.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
    <tr><td class="paramname">headers_only</td><td>whether or not to load the message with the headers only </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the message loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a44c10386781390c16f1a567590b33c11">codes_bufr_new_from_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ab1788f3653df85dd90ac99f40daf98c4">codes_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="a3ba2700ed57b0a155f7dd76f6b1d8ab9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_bufr_copy_data </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid_dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy data values from a BUFR message msgid_src to another message msgid_dst. </p>
<p>Copies all the values in the data section that are present in the same position in the data tree and with the same number of values to the output handle.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid_src</td><td>id of the message from which the data are copied </td></tr>
    <tr><td class="paramname">msgid_dst</td><td>id of the message to which the data are copied </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of new message </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a441ff456dc9990951bf242f4d542713a">codes_get_double_array()</a>, <a class="el" href="namespaceec_codes.html#ab07293de06d6ef6c5810ea3f01723884">codes_get_size()</a>, and <a class="el" href="namespaceec_codes.html#a5c08a280c84117684dfe5705dfad29f5">codes_get_string_array()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a643c58a9acad239c081794c74a5b86d9">codes_new_from_samples()</a>.</p>

</div>
</div>
<a class="anchor" id="a44c10386781390c16f1a567590b33c11"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_bufr_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>headers_only</em> = <code>False</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a BUFR message from a file. </p>
<p>The message can be accessed through its id and will be available<br/>
 until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.<br/>
 <b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/bufr_get_keys" target="_blank">bufr_get_keys.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
    <tr><td class="paramname">headers_only</td><td>whether or not to load the message with the headers only </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the BUFR loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210">codes_grib_new_from_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#af4a4c95465d2026ad549920b07150bab">codes_any_new_from_file()</a>, and <a class="el" href="namespaceec_codes.html#aabd87fd89cfac4d21ec014b838174e3c">codes_metar_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="ae042f8fe1cc86718ce658f3b992c87a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_bufr_new_from_samples </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>samplename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new valid BUFR message from a sample. </p>
<p>The available samples are picked up from the directory pointed to by the environment variable ECCODES_SAMPLES_PATH. To know where the samples directory is run the codes_info tool.<br/>
 <b>Examples:</b> bufr_copy_data.py</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">samplename</td><td>name of the BUFR sample to be used </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the message loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ac18c28cc7bd146dad986e03511fb7340">codes_set_double_array()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#aa619f32357c9107b5b6f96ad1fee4232">codes_set_double()</a>, and <a class="el" href="namespaceec_codes.html#ae623fa09d65a3f699026a86d0e4864da">codes_set_long()</a>.</p>

</div>
</div>
<a class="anchor" id="ab49cb36625cd87b9d898844b1df32516"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_clone </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid_src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a copy of a message. </p>
<p>Create a copy of a given message (<em>msgid_src</em>) resulting in a new message in memory (<em>msgid_dest</em>) identical to the original one.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_clone" target="_blank">grib_clone.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid_src</td><td>id of message to be cloned </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of clone </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab07293de06d6ef6c5810ea3f01723884">codes_get_size()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1c476c5e2dfefa3693df1065e9bf1665">codes_grib_new_from_samples()</a>.</p>

</div>
</div>
<a class="anchor" id="a6c83d2b9572083c7a83c9c5d39010b14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_copy_namespace </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid_src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>namespace</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid_dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy the value of all the keys belonging to a namespace from the source message to the destination message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid_src</td><td>id of source message </td></tr>
    <tr><td class="paramname">gribid_dest</td><td>id of destination message </td></tr>
    <tr><td class="paramname">namespace</td><td>namespace to be copied </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#aeaf2ac58b4a90bd09595986d49228d7c">codes_index_get_long()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a54b35eededa62b2cb3a32b90060c0f2c">codes_set_string_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a5c7a1d8a2c7802edd327a35cb35984e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_count_in_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Count the messages in a file. </p>
<p><b>Examples:</b> count_messages.py</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of messages in the file </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#aaec2118b6fca48e59ded7d2099e81009">codes_grib_multi_support_off()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210">codes_grib_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="a1ba4d3b6473499af0581cf52eb4cad0b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>ktype</em> = <code>None</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the value of a key in a grib message. </p>
<p>The type of value returned depends on the native type of the requested key. The type of value returned can be forced by using the type argument of the function. The type argument can be int, float or str.</p>
<p>The <em>msgid</em> references a grib message loaded in memory.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_get_keys" target="_blank">grib_get_keys.py</a>, <a href="https://confluence.ecmwf.int/display/ECC/grib_print_data" target="_blank">grib_print_data.py</a></p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210" title="Load in memory a grib message from a file. ">codes_grib_new_from_file</a>, <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f" title="Free the memory for the message referred as msgid. ">codes_release</a>, <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07" title="Set the value for a scalar key in a grib message. ">codes_set</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">ktype</td><td>the type we want the output in (int, float or str), native type if not specified </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>scalar value of key as int, float or str </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set()</a>, <a class="el" href="namespaceec_codes.html#aa619f32357c9107b5b6f96ad1fee4232">codes_set_double()</a>, <a class="el" href="namespaceec_codes.html#ac18c28cc7bd146dad986e03511fb7340">codes_set_double_array()</a>, <a class="el" href="namespaceec_codes.html#ae623fa09d65a3f699026a86d0e4864da">codes_set_long()</a>, and <a class="el" href="namespaceec_codes.html#acbb0d241a917a3e726792157c1f5d973">codes_set_string()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#adbc403f07e0bcc151d8b0fb1365492ff">codes_is_defined()</a>.</p>

</div>
</div>
<a class="anchor" id="add6a557c085ea401fc9529ed140025ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_api_version </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the api version. </p>
<p>Get the API version.</p>
<p>Returns the version of the api as a string in the format "major.minor.revision". </p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a267636dba6361f74b330275a1f8e1ed7">codes_index_get()</a>.</p>

</div>
</div>
<a class="anchor" id="a648bae4beadb6a82698da40e08323be9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>ktype</em> = <code>None</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the contents of an array key. </p>
<p>The output array will be stored in a NumPy ndarray. The type of the array returned depends on the native type of the requested key. The type of value returned can be forced by using the type argument of the function. The type argument can be int, float or string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>the key to get the value for </td></tr>
    <tr><td class="paramname">ktype</td><td>the type we want the output in (can be int, float or string), native type if not specified </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy.ndarray </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a1e25a749b9cffb9b4b391cde66a3333c">codes_set_array()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>.</p>

</div>
</div>
<a class="anchor" id="a22a427ff4355e63b2c16c491572ea6b5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_double </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the value of a key in a grib message as a float. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>value of key as float </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a643c58a9acad239c081794c74a5b86d9">codes_new_from_samples()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>, and <a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1">codes_keys_iterator_delete()</a>.</p>

</div>
</div>
<a class="anchor" id="a441ff456dc9990951bf242f4d542713a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_double_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the value of the key as a NumPy array of doubles. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy.ndarray </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a59e415f83b7f26b4575a5700ece65c14">codes_set_long_array()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a3ba2700ed57b0a155f7dd76f6b1d8ab9">codes_bufr_copy_data()</a>, <a class="el" href="namespaceec_codes.html#a1250285cb0770393bf6078f3ee3340a2">codes_get_native_type()</a>, and <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>.</p>

</div>
</div>
<a class="anchor" id="a3b085fe4c2ea0090a74959b396b2287f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_double_element </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>index</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get as double the i-th element of the "key" array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>the key to be searched </td></tr>
    <tr><td class="paramname">index</td><td>zero based index of value to retrieve </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>value </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a98ef64298972c19d87f4fa54b125a268">codes_index_select_double()</a>.</p>

</div>
</div>
<a class="anchor" id="af0708f169680a9b753789a3d61f7f9ef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_double_elements </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get as double array the elements of the "key" array whose indexes are listed in the input array. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>the key to be searched </td></tr>
    <tr><td class="paramname">indexes</td><td>list or tuple of indexes </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy.ndarray </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a2dd162c68a1326619a34b45e56fdb46c">codes_is_missing()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#af9fa4123658007a2362baa9afd055063">codes_index_select_string()</a>.</p>

</div>
</div>
<a class="anchor" id="a8558de4f563b57fe8104d024eb90e7d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_elements </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the elements of the key array for the indexes specified in the input. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>the key to be searched </td></tr>
    <tr><td class="paramname">indexes</td><td>single index or a list of indexes </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy.ndarray containing the values of key for the given indexes </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#adbc403f07e0bcc151d8b0fb1365492ff">codes_is_defined()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a6fc3995f61a5f34933afd0aeb6427bf6">codes_new_from_index()</a>.</p>

</div>
</div>
<a class="anchor" id="a88f2a86c370e490dae8e684c957022fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_long </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the value of a key in a grib message as an int. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>value of key as int </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#aa619f32357c9107b5b6f96ad1fee4232">codes_set_double()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>, and <a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd">codes_keys_iterator_next()</a>.</p>

</div>
</div>
<a class="anchor" id="a680c8ecbf2104d69083c68ea6184192d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_long_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the integer array of values for a key from a grib message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy.ndarray </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a5c08a280c84117684dfe5705dfad29f5">codes_get_string_array()</a>, and <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>.</p>

</div>
</div>
<a class="anchor" id="a0f446397a9956ed5518ff6461fcc17f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_message </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the binary message. </p>
<p>Returns the binary string message associated with the grib identified by msgid.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a8b42a0c20ab81efa5a214dacc0b75d58" title="Create a grib handle from a message in memory. ">codes_new_from_message</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the grib loaded in memory </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>binary string message associated with msgid </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a92041c59bf04e6db88395077802dfe74">codes_index_select()</a>.</p>

</div>
</div>
<a class="anchor" id="a72cc99e87c999a3cd225323fdcddfad7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_message_offset </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the offset of a coded message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>offset in bytes of the message </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a997587cb4079552273d224fd3434463b">codes_set_key_vals()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a98ef64298972c19d87f4fa54b125a268">codes_index_select_double()</a>.</p>

</div>
</div>
<a class="anchor" id="aa1a3c2d7800aa28297e3a9a11c4f6c0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_message_size </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of a coded message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size in bytes of the message </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#affddd8311b1127306fa02ce26023d89e">codes_set_missing()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ada63dc27281c249035da5b54e6ec0966">codes_index_select_long()</a>.</p>

</div>
</div>
<a class="anchor" id="a1250285cb0770393bf6078f3ee3340a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_native_type </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the native type of a key. </p>
<p>Possible values can be int, float or string.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key we want to find out the type for </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>type of key given as input or None if not determined </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a441ff456dc9990951bf242f4d542713a">codes_get_double_array()</a>, and <a class="el" href="namespaceec_codes.html#abc699d0bb7a7dded968ee0111342ffd0">codes_set_values()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>, and <a class="el" href="namespaceec_codes.html#a997587cb4079552273d224fd3434463b">codes_set_key_vals()</a>.</p>

</div>
</div>
<a class="anchor" id="ab07293de06d6ef6c5810ea3f01723884"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_size </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the size of an array key. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_get_keys" target="_blank">grib_get_keys.py</a>,count_messages.py</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>name of the key </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a587af29aac21a816f8ffd327a1fce779">codes_skip_computed()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a3ba2700ed57b0a155f7dd76f6b1d8ab9">codes_bufr_copy_data()</a>, <a class="el" href="namespaceec_codes.html#ab49cb36625cd87b9d898844b1df32516">codes_clone()</a>, <a class="el" href="namespaceec_codes.html#a5c08a280c84117684dfe5705dfad29f5">codes_get_string_array()</a>, and <a class="el" href="namespaceec_codes.html#ac70e34af931428ba9a4874e0ebf75928">codes_grib_multi_write()</a>.</p>

</div>
</div>
<a class="anchor" id="a37ff4cf406f9b0b0cd6ede563c1d5ab1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_string </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the string value of a key from a message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string value of key </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a4c5256c7e609cf3eedf7d695a4b58a45">codes_gribex_mode_off()</a>, and <a class="el" href="namespaceec_codes.html#aec0c4f83da942b94d51a3d8b93ecb6c4">codes_gribex_mode_on()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>, and <a class="el" href="namespaceec_codes.html#aaec2118b6fca48e59ded7d2099e81009">codes_grib_multi_support_off()</a>.</p>

</div>
</div>
<a class="anchor" id="a5c08a280c84117684dfe5705dfad29f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_string_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the value of the key as a list of strings. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>list </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a680c8ecbf2104d69083c68ea6184192d">codes_get_long_array()</a>, <a class="el" href="namespaceec_codes.html#ab07293de06d6ef6c5810ea3f01723884">codes_get_size()</a>, and <a class="el" href="namespaceec_codes.html#a0b1fb93a9f550c971a7e08ca16bb5100">codes_grib_multi_new()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a3ba2700ed57b0a155f7dd76f6b1d8ab9">codes_bufr_copy_data()</a>, and <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>.</p>

</div>
</div>
<a class="anchor" id="adc7361072916fe6ec52e9cf53f066839"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_string_length </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the length of the string version of a key. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>name of the key </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a4b7140ca0dd81372721cffd1d964e4ad">codes_skip_coded()</a>, and <a class="el" href="namespaceec_codes.html#acb01114683ef4aacbf1609eb3a435055">codes_skip_edition_specific()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a956a6f84f7b418551cd6c4976c970140">codes_grib_multi_append()</a>, and <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release()</a>.</p>

</div>
</div>
<a class="anchor" id="a0af74e12fba25379db678363f5bdafb3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_get_values </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the contents of the 'values' key for a GRIB message. </p>
<p>A NumPy ndarray containing the values in the message is returned.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_print_data" target="_blank">grib_print_data.py</a>, <a href="https://confluence.ecmwf.int/display/ECC/grib_samples" target="_blank">grib_samples.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the GRIB loaded in memory </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>numpy.ndarray </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a267636dba6361f74b330275a1f8e1ed7">codes_index_get()</a>, <a class="el" href="namespaceec_codes.html#ac18c28cc7bd146dad986e03511fb7340">codes_set_double_array()</a>, <a class="el" href="namespaceec_codes.html#a59e415f83b7f26b4575a5700ece65c14">codes_set_long_array()</a>, and <a class="el" href="namespaceec_codes.html#a54b35eededa62b2cb3a32b90060c0f2c">codes_set_string_array()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>.</p>

</div>
</div>
<a class="anchor" id="a134bac0edaf47f29051ad905a30fb63e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_find_nearest </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>inlat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>inlon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>is_lsm</em> = <code>False</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>npoints</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find the nearest grid point or the nearest four grid points to a given latitude/longitude. </p>
<p>The number of nearest points returned can be controled through the npoints function argument.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_nearest" target="_blank">grib_nearest.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">inlat</td><td>latitude of the point </td></tr>
    <tr><td class="paramname">inlon</td><td>longitude of the point </td></tr>
    <tr><td class="paramname">is_lsm</td><td>True if the nearest land point is required otherwise False. </td></tr>
    <tr><td class="paramname">npoints</td><td>1 or 4 nearest grid points </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>(npoints*(outlat,outlon,value,dist,index)) </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a648bae4beadb6a82698da40e08323be9">codes_get_array()</a>, <a class="el" href="namespaceec_codes.html#a22a427ff4355e63b2c16c491572ea6b5">codes_get_double()</a>, <a class="el" href="namespaceec_codes.html#a441ff456dc9990951bf242f4d542713a">codes_get_double_array()</a>, <a class="el" href="namespaceec_codes.html#a88f2a86c370e490dae8e684c957022fd">codes_get_long()</a>, <a class="el" href="namespaceec_codes.html#a680c8ecbf2104d69083c68ea6184192d">codes_get_long_array()</a>, <a class="el" href="namespaceec_codes.html#a1250285cb0770393bf6078f3ee3340a2">codes_get_native_type()</a>, <a class="el" href="namespaceec_codes.html#a37ff4cf406f9b0b0cd6ede563c1d5ab1">codes_get_string()</a>, <a class="el" href="namespaceec_codes.html#a5c08a280c84117684dfe5705dfad29f5">codes_get_string_array()</a>, and <a class="el" href="namespaceec_codes.html#a0af74e12fba25379db678363f5bdafb3">codes_get_values()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#affddd8311b1127306fa02ce26023d89e">codes_set_missing()</a>.</p>

</div>
</div>
<a class="anchor" id="a18cdf4111053dc0c387a5fbddb0aaf30"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_iterator_delete </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a geoiterator and free memory. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_iterator" target="_blank">grib_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>geoiterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#afb6f25e55aab91e1cf273403c4151c70">codes_skip_read_only()</a>.</p>

</div>
</div>
<a class="anchor" id="af3e5c3e1ee4d4b1e2f37862b9de92273"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_iterator_new </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new geoiterator for the given message, using its geometry and values. </p>
<p>The geoiterator can be used to go through all the geopoints in a message and retrieve the values corresponding to those geopoints.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_iterator" target="_blank">grib_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">mode</td><td>flags for future use </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>geoiterator id </dd></dl>

<p>References <a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a57f7a5a0f6975e1357e5aa1dc4715e0c">codes_skip_duplicates()</a>.</p>

</div>
</div>
<a class="anchor" id="ae2bc65694ff09cdd253ef35f760ef841"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_iterator_next </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve the next value from a geoiterator. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_iterator" target="_blank">grib_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>geoiterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>tuple with the latitude, longitude and value </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1">codes_keys_iterator_delete()</a>, and <a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd">codes_keys_iterator_next()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a6eedc94ffbffad66b92d3fccfc1ec692">codes_skip_function()</a>.</p>

</div>
</div>
<a class="anchor" id="a956a6f84f7b418551cd6c4976c970140"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_multi_append </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>ingribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>startsection</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>multigribid</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Append a single field grib message to a multi field grib message. </p>
<p>Only the sections with section number greather or equal "startsection" are copied from the input single message to the multi field output grib.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_multi_write" target="_blank">grib_multi_write.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ingribid</td><td>id of the input single grib </td></tr>
    <tr><td class="paramname">startsection</td><td>starting from startsection (included) all the sections are copied from the input single grib to the output multi grib </td></tr>
    <tr><td class="paramname">multigribid</td><td>id of the output multi filed grib </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#adc7361072916fe6ec52e9cf53f066839">codes_get_string_length()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#af13b3e69c2b5ad0ea6b7fd07ac37e367">codes_write()</a>.</p>

</div>
</div>
<a class="anchor" id="a0b1fb93a9f550c971a7e08ca16bb5100"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_multi_new </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new multi field and return its id. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_multi_write" target="_blank">grib_multi_write.py</a></p>
<dl class="section return"><dt>Returns</dt><dd>id of the multi field </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a1c18ea67e5ce00500824676691b4bc4a">codes_index_add_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a5c08a280c84117684dfe5705dfad29f5">codes_get_string_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a1e9477394be21ac60be3d6841660c137"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_multi_release </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release a multi field from memory. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_multi_write" target="_blank">grib_multi_write.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the multi field we want to release the memory for </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab9369968f436ad85084ec1d48e9324c7">codes_index_get_size()</a>, and <a class="el" href="namespaceec_codes.html#ae5a40e31f81dd4cdddf8ddc71e833395">codes_index_release()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a54b35eededa62b2cb3a32b90060c0f2c">codes_set_string_array()</a>.</p>

</div>
</div>
<a class="anchor" id="aaec2118b6fca48e59ded7d2099e81009"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_multi_support_off </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn off the support for multiple fields in a single message. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a37ff4cf406f9b0b0cd6ede563c1d5ab1">codes_get_string()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a5c7a1d8a2c7802edd327a35cb35984e7">codes_count_in_file()</a>.</p>

</div>
</div>
<a class="anchor" id="aed3ce5487d6bdd24e1127e638c9cfd54"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_multi_support_on </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn on the support for multiple fields in a single message. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210">codes_grib_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="ac70e34af931428ba9a4874e0ebf75928"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_multi_write </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>multigribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a multi field message to a file. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_multi_write" target="_blank">grib_multi_write.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">multigribid</td><td>id of the multi field grib loaded in memory </td></tr>
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab07293de06d6ef6c5810ea3f01723884">codes_get_size()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a4c5256c7e609cf3eedf7d695a4b58a45">codes_gribex_mode_off()</a>.</p>

</div>
</div>
<a class="anchor" id="a80246f356012448955e2e75572a8d210"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>headers_only</em> = <code>False</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a grib message from a file. </p>
<p>The message can be accessed through its gribid and will be available<br/>
 until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.<br/>
 The message can be loaded headers only by using the headers_only argument. Default is to have the headers only option set to off (False). If set to on (True), data values will be skipped. This will result in a significant performance gain if one is only interested in browsing through messages to retrieve metadata. Any attempt to retrieve data values keys when in the headers only mode will result in a key not found error.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_get_keys" target="_blank">grib_get_keys.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
    <tr><td class="paramname">headers_only</td><td>whether or not to load the message with the headers only </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the grib loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a5c7a1d8a2c7802edd327a35cb35984e7">codes_count_in_file()</a>, and <a class="el" href="namespaceec_codes.html#aed3ce5487d6bdd24e1127e638c9cfd54">codes_grib_multi_support_on()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a44c10386781390c16f1a567590b33c11">codes_bufr_new_from_file()</a>, and <a class="el" href="namespaceec_codes.html#aabd87fd89cfac4d21ec014b838174e3c">codes_metar_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="a1c476c5e2dfefa3693df1065e9bf1665"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_grib_new_from_samples </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>samplename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new valid GRIB message from a sample. </p>
<p>The available samples are picked up from the directory pointed to by the environment variable ECCODES_SAMPLES_PATH. To know where the samples directory is run the codes_info tool.<br/>
 <b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_samples" target="_blank">grib_samples.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">samplename</td><td>name of the sample to be used </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the message loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab49cb36625cd87b9d898844b1df32516">codes_clone()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ae623fa09d65a3f699026a86d0e4864da">codes_set_long()</a>.</p>

</div>
</div>
<a class="anchor" id="a4c5256c7e609cf3eedf7d695a4b58a45"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_gribex_mode_off </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn off the compatibility mode with gribex. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ac70e34af931428ba9a4874e0ebf75928">codes_grib_multi_write()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a37ff4cf406f9b0b0cd6ede563c1d5ab1">codes_get_string()</a>.</p>

</div>
</div>
<a class="anchor" id="aec0c4f83da942b94d51a3d8b93ecb6c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_gribex_mode_on </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Turn on the compatibility mode with gribex. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a37ff4cf406f9b0b0cd6ede563c1d5ab1">codes_get_string()</a>.</p>

</div>
</div>
<a class="anchor" id="ae71963dcd0256ccf5bd849f1f6643f38"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_gts_header </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the GTS header on/off. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flag</td><td>True/False </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a267636dba6361f74b330275a1f8e1ed7">codes_index_get()</a>.</p>

</div>
</div>
<a class="anchor" id="ab06cc33b116103a54fadb4e2735e579a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_gts_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>headers_only</em> = <code>False</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a GTS message from a file. </p>
<p>The message can be accessed through its id and will be available<br/>
 until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.<br/>
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
    <tr><td class="paramname">headers_only</td><td>whether or not to load the message with the headers only </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the GTS loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#aabd87fd89cfac4d21ec014b838174e3c">codes_metar_new_from_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ab1788f3653df85dd90ac99f40daf98c4">codes_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="a1c18ea67e5ce00500824676691b4bc4a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_add_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add a file to an index. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of the index to add the file to </td></tr>
    <tr><td class="paramname">filename</td><td>path of the file to be added to index </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a19b8c07a5ab06944488e66ce434a615b">codes_index_get_string()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a0b1fb93a9f550c971a7e08ca16bb5100">codes_grib_multi_new()</a>.</p>

</div>
</div>
<a class="anchor" id="a267636dba6361f74b330275a1f8e1ed7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_get </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>ktype</em> = <code>str</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of an index key. </p>
<p>The key must belong to the index.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created on the given key. </td></tr>
    <tr><td class="paramname">key</td><td>key for which the values are returned </td></tr>
    <tr><td class="paramname">ktype</td><td>the type we want the output in (int, float or str), str if not specified </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>array of values </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#add6a557c085ea401fc9529ed140025ef">codes_get_api_version()</a>, and <a class="el" href="namespaceec_codes.html#ae71963dcd0256ccf5bd849f1f6643f38">codes_gts_header()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a0af74e12fba25379db678363f5bdafb3">codes_get_values()</a>.</p>

</div>
</div>
<a class="anchor" id="ab28f95174ea3e8eb760d4019598ec9e6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_get_double </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index.</p>
<p>This function is used when the type of the key was explicitly defined as double or when the native type of the key is double.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>tuple with values of key in index </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a6fc3995f61a5f34933afd0aeb6427bf6">codes_new_from_index()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ab9369968f436ad85084ec1d48e9324c7">codes_index_get_size()</a>, and <a class="el" href="namespaceec_codes.html#abc699d0bb7a7dded968ee0111342ffd0">codes_set_values()</a>.</p>

</div>
</div>
<a class="anchor" id="aeaf2ac58b4a90bd09595986d49228d7c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_get_long </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index.</p>
<p>This function is used when the type of the key was explicitly defined as long or when the native type of the key is long.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>tuple with values of key in index </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab9369968f436ad85084ec1d48e9324c7">codes_index_get_size()</a>, and <a class="el" href="namespaceec_codes.html#ada63dc27281c249035da5b54e6ec0966">codes_index_select_long()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a6c83d2b9572083c7a83c9c5d39010b14">codes_copy_namespace()</a>, and <a class="el" href="namespaceec_codes.html#abc699d0bb7a7dded968ee0111342ffd0">codes_set_values()</a>.</p>

</div>
</div>
<a class="anchor" id="ab9369968f436ad85084ec1d48e9324c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_get_size </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the number of distinct values for the index key. </p>
<p>The key must belong to the index.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created on the given key. </td></tr>
    <tr><td class="paramname">key</td><td>key for which the number of values is computed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of distinct values for key in index </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab28f95174ea3e8eb760d4019598ec9e6">codes_index_get_double()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1e9477394be21ac60be3d6841660c137">codes_grib_multi_release()</a>, <a class="el" href="namespaceec_codes.html#aeaf2ac58b4a90bd09595986d49228d7c">codes_index_get_long()</a>, <a class="el" href="namespaceec_codes.html#ae89dc44888bfbba102e6c9332839fc51">codes_index_new_from_file()</a>, and <a class="el" href="namespaceec_codes.html#ae5a40e31f81dd4cdddf8ddc71e833395">codes_index_release()</a>.</p>

</div>
</div>
<a class="anchor" id="a19b8c07a5ab06944488e66ce434a615b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_get_string </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the distinct values of the key in argument contained in the index. </p>
<p>The key must belong to the index.</p>
<p>This function is used when the type of the key was explicitly defined as string or when the native type of the key is string.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key for wich the values are returned </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>tuple with values of key in index </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a98ef64298972c19d87f4fa54b125a268">codes_index_select_double()</a>, and <a class="el" href="namespaceec_codes.html#af9fa4123658007a2362baa9afd055063">codes_index_select_string()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1c18ea67e5ce00500824676691b4bc4a">codes_index_add_file()</a>, and <a class="el" href="namespaceec_codes.html#abc699d0bb7a7dded968ee0111342ffd0">codes_set_values()</a>.</p>

</div>
</div>
<a class="anchor" id="ae89dc44888bfbba102e6c9332839fc51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>keys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new index from a file. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>path of the file to index on </td></tr>
    <tr><td class="paramname">keys</td><td>sequence of keys to index on. The type of the key can be explicitly declared appending :l for long (or alternatively :i), :d for double, :s for string to the key name. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>index id </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab9369968f436ad85084ec1d48e9324c7">codes_index_get_size()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a59e415f83b7f26b4575a5700ece65c14">codes_set_long_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a13866152bfd07b8cd418f6cf8c73d7ab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_read </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads an index previously saved with <a class="el" href="namespaceec_codes.html#a32c66888832215b2860535729ee616f8">codes_index_write</a> to a file. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>path of file to load the index from </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the loaded index </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a63f59e45ba10997c9e30bf63ea5f66e0">codes_set_definitions_path()</a>, and <a class="el" href="namespaceec_codes.html#ab7f299aaed48129491cc365a8ca289c2">codes_set_samples_path()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1e25a749b9cffb9b4b391cde66a3333c">codes_set_array()</a>.</p>

</div>
</div>
<a class="anchor" id="ae5a40e31f81dd4cdddf8ddc71e833395"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_release </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete an index. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab9369968f436ad85084ec1d48e9324c7">codes_index_get_size()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1e9477394be21ac60be3d6841660c137">codes_grib_multi_release()</a>.</p>

</div>
</div>
<a class="anchor" id="a92041c59bf04e6db88395077802dfe74"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_select </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a0f446397a9956ed5518ff6461fcc17f0">codes_get_message()</a>, and <a class="el" href="namespaceec_codes.html#a8b42a0c20ab81efa5a214dacc0b75d58">codes_new_from_message()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set()</a>.</p>

</div>
</div>
<a class="anchor" id="a98ef64298972c19d87f4fa54b125a268"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_select_double </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is a double.</p>
<p>The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a3b085fe4c2ea0090a74959b396b2287f">codes_get_double_element()</a>, and <a class="el" href="namespaceec_codes.html#a72cc99e87c999a3cd225323fdcddfad7">codes_get_message_offset()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a19b8c07a5ab06944488e66ce434a615b">codes_index_get_string()</a>, and <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set()</a>.</p>

</div>
</div>
<a class="anchor" id="ada63dc27281c249035da5b54e6ec0966"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_select_long </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is an integer.</p>
<p>The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#aa1a3c2d7800aa28297e3a9a11c4f6c0f">codes_get_message_size()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#aeaf2ac58b4a90bd09595986d49228d7c">codes_index_get_long()</a>, and <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set()</a>.</p>

</div>
</div>
<a class="anchor" id="af9fa4123658007a2362baa9afd055063"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_select_string </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Select the message subset with key==value. </p>
<p>The value is an integer.</p>
<p>The key must have been created with string type or have string as native type if the type was not explicitly defined in the index creation.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. The index must have been created with the key in argument. </td></tr>
    <tr><td class="paramname">key</td><td>key to be selected </td></tr>
    <tr><td class="paramname">value</td><td>value of the key to select </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#af0708f169680a9b753789a3d61f7f9ef">codes_get_double_elements()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a19b8c07a5ab06944488e66ce434a615b">codes_index_get_string()</a>, and <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set()</a>.</p>

</div>
</div>
<a class="anchor" id="a32c66888832215b2860535729ee616f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_index_write </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write an index to a file for later reuse. </p>
<p>An index can be loaded back from an index file with <a class="el" href="namespaceec_codes.html#a13866152bfd07b8cd418f6cf8c73d7ab">codes_index_read</a>.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of the index </td></tr>
    <tr><td class="paramname">filename</td><td>path of file to save the index to </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set()</a>.</p>

</div>
</div>
<a class="anchor" id="adbc403f07e0bcc151d8b0fb1365492ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_is_defined </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if a key is defined (exists) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0-&gt;not defined, 1-&gt;defined </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a8558de4f563b57fe8104d024eb90e7d2">codes_get_elements()</a>.</p>

</div>
</div>
<a class="anchor" id="a2dd162c68a1326619a34b45e56fdb46c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_is_missing </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if the value of a key is MISSING. </p>
<p>The value of a key is considered as MISSING when all the bits assigned to it are set to 1. This is different from the actual key missing from the grib message. The value of a key MISSING has a special significance and that can be read about in the WMO documentation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0-&gt;not missing, 1-&gt;missing </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#af0708f169680a9b753789a3d61f7f9ef">codes_get_double_elements()</a>.</p>

</div>
</div>
<a class="anchor" id="a83a077fb2dda1e7f1d317039fc7267d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_keys_iterator_delete </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a keys iterator and free memory. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_keys_iterator" target="_blank">grib_keys_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a22a427ff4355e63b2c16c491572ea6b5">codes_get_double()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ae2bc65694ff09cdd253ef35f760ef841">codes_grib_iterator_next()</a>.</p>

</div>
</div>
<a class="anchor" id="aec91e405c936c335c00267eb221c9f91"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_keys_iterator_get_name </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the name of a key from a keys iterator. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_keys_iterator" target="_blank">grib_keys_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>key name to be retrieved </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ae623fa09d65a3f699026a86d0e4864da">codes_set_long()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new()</a>.</p>

</div>
</div>
<a class="anchor" id="a199fb77e1395975be732e46f93b3e337"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_keys_iterator_new </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>namespace</em> = <code>None</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new iterator on the keys. </p>
<p>The keys iterator can be navigated to give all the key names which can then be used to get or set the key values with <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get</a> or <a class="el" href="namespaceec_codes.html#abb5cff8e4911614c8b04032fb014ea07">codes_set</a>. The set of keys returned can be controlled with the input variable namespace or using the functions <a class="el" href="namespaceec_codes.html#afb6f25e55aab91e1cf273403c4151c70">codes_skip_read_only</a>, <a class="el" href="namespaceec_codes.html#a57f7a5a0f6975e1357e5aa1dc4715e0c">codes_skip_duplicates</a>, <a class="el" href="namespaceec_codes.html#a4b7140ca0dd81372721cffd1d964e4ad">codes_skip_coded</a>,<a class="el" href="namespaceec_codes.html#a587af29aac21a816f8ffd327a1fce779">codes_skip_computed</a>. If namespace is a non empty string only the keys belonging to that namespace are returned. Example namespaces are "ls" (to get the same default keys as the grib_ls) and "mars" to get the keys used by mars.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_iterator" target="_blank">grib_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">namespace</td><td>the namespace of the keys to search for (all the keys if None) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>keys iterator id to be used in the keys iterator functions </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#aec91e405c936c335c00267eb221c9f91">codes_keys_iterator_get_name()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#af3e5c3e1ee4d4b1e2f37862b9de92273">codes_grib_iterator_new()</a>.</p>

</div>
</div>
<a class="anchor" id="af2eecea5df157516fb60556cbd1283cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_keys_iterator_next </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Advance to the next keys iterator value. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_keys_iterator" target="_blank">grib_keys_iterator.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a88f2a86c370e490dae8e684c957022fd">codes_get_long()</a>, and <a class="el" href="namespaceec_codes.html#a921bb3a4c69e51a4c276bd6cf37c2d2c">codes_keys_iterator_rewind()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ae2bc65694ff09cdd253ef35f760ef841">codes_grib_iterator_next()</a>.</p>

</div>
</div>
<a class="anchor" id="a921bb3a4c69e51a4c276bd6cf37c2d2c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_keys_iterator_rewind </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Rewind a keys iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id created with <a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337">codes_keys_iterator_new</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd">codes_keys_iterator_next()</a>.</p>

</div>
</div>
<a class="anchor" id="aabd87fd89cfac4d21ec014b838174e3c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_metar_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>headers_only</em> = <code>False</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a METAR message from a file. </p>
<p>The message can be accessed through its id and will be available<br/>
 until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.<br/>
 </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
    <tr><td class="paramname">headers_only</td><td>whether or not to load the message with the headers only </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the METAR loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a44c10386781390c16f1a567590b33c11">codes_bufr_new_from_file()</a>, <a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210">codes_grib_new_from_file()</a>, and <a class="el" href="namespaceec_codes.html#ab1788f3653df85dd90ac99f40daf98c4">codes_new_from_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ab06cc33b116103a54fadb4e2735e579a">codes_gts_new_from_file()</a>, and <a class="el" href="namespaceec_codes.html#ab1788f3653df85dd90ac99f40daf98c4">codes_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="ab1788f3653df85dd90ac99f40daf98c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_new_from_file </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>product_kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>headers_only</em> = <code>False</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load in memory a message from a file for a given product. </p>
<p>The message can be accessed through its id and will be available<br/>
 until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.<br/>
 <b>Examples:</b> get_product_kind.py</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
    <tr><td class="paramname">product_kind</td><td>one of CODES_PRODUCT_GRIB, CODES_PRODUCT_BUFR, CODES_PRODUCT_METAR or CODES_PRODUCT_GTS </td></tr>
    <tr><td class="paramname">headers_only</td><td>whether or not to load the message with the headers only </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the message loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#af4a4c95465d2026ad549920b07150bab">codes_any_new_from_file()</a>, <a class="el" href="namespaceec_codes.html#ab06cc33b116103a54fadb4e2735e579a">codes_gts_new_from_file()</a>, and <a class="el" href="namespaceec_codes.html#aabd87fd89cfac4d21ec014b838174e3c">codes_metar_new_from_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#aabd87fd89cfac4d21ec014b838174e3c">codes_metar_new_from_file()</a>.</p>

</div>
</div>
<a class="anchor" id="a6fc3995f61a5f34933afd0aeb6427bf6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_new_from_index </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>indexid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new handle from an index after having selected the key values. </p>
<p>All the keys belonging to the index must be selected before calling this function. Successive calls to this function will return all the handles compatible with the constraints defined selecting the values of the index keys.</p>
<p>The message can be accessed through its gribid and will be available until <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release</a> is called.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_index" target="_blank">grib_index.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">indexid</td><td>id of an index created from a file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the message loaded in memory or None if end of index </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a8558de4f563b57fe8104d024eb90e7d2">codes_get_elements()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ab28f95174ea3e8eb760d4019598ec9e6">codes_index_get_double()</a>.</p>

</div>
</div>
<a class="anchor" id="a8b42a0c20ab81efa5a214dacc0b75d58"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_new_from_message </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a grib handle from a message in memory. </p>
<p>Create a new grib message from the input binary string and return its grib id.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a0f446397a9956ed5518ff6461fcc17f0" title="Get the binary message. ">codes_get_message</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>binary string message </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>msgid of the newly created grib message </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a92041c59bf04e6db88395077802dfe74">codes_index_select()</a>.</p>

</div>
</div>
<a class="anchor" id="a643c58a9acad239c081794c74a5b86d9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_new_from_samples </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>samplename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>product_kind</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new valid message from a sample for a given product. </p>
<p>The available samples are picked up from the directory pointed to by the environment variable ECCODES_SAMPLES_PATH. To know where the samples directory is run the codes_info tool.<br/>
 <b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_samples" target="_blank">grib_samples.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">samplename</td><td>name of the sample to be used </td></tr>
    <tr><td class="paramname">product_kind</td><td>CODES_PRODUCT_GRIB or CODES_PRODUCT_BUFR </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>id of the message loaded in memory </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a3ba2700ed57b0a155f7dd76f6b1d8ab9">codes_bufr_copy_data()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a22a427ff4355e63b2c16c491572ea6b5">codes_get_double()</a>.</p>

</div>
</div>
<a class="anchor" id="a85e89c8eae4fb209ae0a7c566e4a2cb1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_no_fail_on_wrong_length </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>flag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Do not fail if the message has the wrong length. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flag</td><td>True/False </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1e25a749b9cffb9b4b391cde66a3333c">codes_set_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a23859e3fb8802982fe865789d61b181f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_release </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free the memory for the message referred as msgid. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_get_keys" target="_blank">grib_get_keys.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#adc7361072916fe6ec52e9cf53f066839">codes_get_string_length()</a>, and <a class="el" href="namespaceec_codes.html#acbb0d241a917a3e726792157c1f5d973">codes_set_string()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#aed3ce5487d6bdd24e1127e638c9cfd54">codes_grib_multi_support_on()</a>.</p>

</div>
</div>
<a class="anchor" id="abb5cff8e4911614c8b04032fb014ea07"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value for a scalar key in a grib message. </p>
<p>The input value can be a python int, float or str.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_set_keys" target="_blank">grib_set_keys.py</a></p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a80246f356012448955e2e75572a8d210" title="Load in memory a grib message from a file. ">codes_grib_new_from_file</a>, <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f" title="Free the memory for the message referred as msgid. ">codes_release</a>, <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b" title="Get the value of a key in a grib message. ">codes_get</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>scalar value to set for key </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a92041c59bf04e6db88395077802dfe74">codes_index_select()</a>, <a class="el" href="namespaceec_codes.html#a98ef64298972c19d87f4fa54b125a268">codes_index_select_double()</a>, <a class="el" href="namespaceec_codes.html#ada63dc27281c249035da5b54e6ec0966">codes_index_select_long()</a>, <a class="el" href="namespaceec_codes.html#af9fa4123658007a2362baa9afd055063">codes_index_select_string()</a>, and <a class="el" href="namespaceec_codes.html#a32c66888832215b2860535729ee616f8">codes_index_write()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get()</a>.</p>

</div>
</div>
<a class="anchor" id="a1e25a749b9cffb9b4b391cde66a3333c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value for an array key in a message. </p>
<p>Examples of array keys: "values" - data values "pl" - list of number of points for each latitude in a reduced grid "pv" - list of vertical levels</p>
<p>The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ...</p>
<p>The wrapper will internally try to convert the input to a NumPy array before extracting its data and length. This is possible as NumPy allows the construction of arrays from arbitrary python sequences.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>array to set for key </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a13866152bfd07b8cd418f6cf8c73d7ab">codes_index_read()</a>, and <a class="el" href="namespaceec_codes.html#a85e89c8eae4fb209ae0a7c566e4a2cb1">codes_no_fail_on_wrong_length()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a648bae4beadb6a82698da40e08323be9">codes_get_array()</a>.</p>

</div>
</div>
<a class="anchor" id="a63f59e45ba10997c9e30bf63ea5f66e0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_definitions_path </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>defs_path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the definitions path. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">defs_path</td><td>definitions path </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a13866152bfd07b8cd418f6cf8c73d7ab">codes_index_read()</a>.</p>

</div>
</div>
<a class="anchor" id="aa619f32357c9107b5b6f96ad1fee4232"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_double </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the double value for a key in a grib message. </p>
<p>A TypeError exception will be thrown if value cannot be represented as a float.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>float value to set </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError,TypeError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ae042f8fe1cc86718ce658f3b992c87a2">codes_bufr_new_from_samples()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get()</a>, and <a class="el" href="namespaceec_codes.html#a88f2a86c370e490dae8e684c957022fd">codes_get_long()</a>.</p>

</div>
</div>
<a class="anchor" id="ac18c28cc7bd146dad986e03511fb7340"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_double_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>inarray</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value of the key to a double array. </p>
<p>The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ...</p>
<p>The wrapper will internally try to convert the input to a NumPy array before extracting its data and length. This is possible as NumPy allows the construction of arrays from arbitrary python sequences.</p>
<p>The elements of the input sequence need to be convertible to a double.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">inarray</td><td>tuple,list,array,numpy.ndarray </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a54b35eededa62b2cb3a32b90060c0f2c">codes_set_string_array()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ae042f8fe1cc86718ce658f3b992c87a2">codes_bufr_new_from_samples()</a>, <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get()</a>, and <a class="el" href="namespaceec_codes.html#a0af74e12fba25379db678363f5bdafb3">codes_get_values()</a>.</p>

</div>
</div>
<a class="anchor" id="a997587cb4079552273d224fd3434463b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_key_vals </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key_vals</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the values for several keys at once in a grib message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">key_vals</td><td>can be a string, list/tuple or dictionary. If a string, format must be "key1=val1,key2=val2" If a list, it must contain strings of the form "key1=val1" </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a1250285cb0770393bf6078f3ee3340a2">codes_get_native_type()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a72cc99e87c999a3cd225323fdcddfad7">codes_get_message_offset()</a>.</p>

</div>
</div>
<a class="anchor" id="ae623fa09d65a3f699026a86d0e4864da"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_long </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the integer value for a key in a grib message. </p>
<p>A TypeError exception will be thrown if value cannot be represented as an integer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>value to set </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError,TypeError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ae042f8fe1cc86718ce658f3b992c87a2">codes_bufr_new_from_samples()</a>, and <a class="el" href="namespaceec_codes.html#a1c476c5e2dfefa3693df1065e9bf1665">codes_grib_new_from_samples()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get()</a>, and <a class="el" href="namespaceec_codes.html#aec91e405c936c335c00267eb221c9f91">codes_keys_iterator_get_name()</a>.</p>

</div>
</div>
<a class="anchor" id="a59e415f83b7f26b4575a5700ece65c14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_long_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>inarray</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value of the key to an integer array. </p>
<p>The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ...</p>
<p>The wrapper will internally try to convert the input to a NumPy array before extracting its data and length. This is possible as NumPy allows the construction of arrays from arbitrary python sequences.</p>
<p>The elements of the input sequence need to be convertible to an int.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">inarray</td><td>tuple,list,python array,numpy.ndarray </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ae89dc44888bfbba102e6c9332839fc51">codes_index_new_from_file()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a441ff456dc9990951bf242f4d542713a">codes_get_double_array()</a>, and <a class="el" href="namespaceec_codes.html#a0af74e12fba25379db678363f5bdafb3">codes_get_values()</a>.</p>

</div>
</div>
<a class="anchor" id="affddd8311b1127306fa02ce26023d89e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_missing </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set as missing the value for a key in a grib message. </p>
<p>It can be used to set a missing value in the grib header but not in the data values.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_set_missing" target="_blank">grib_set_missing.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a134bac0edaf47f29051ad905a30fb63e">codes_grib_find_nearest()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#aa1a3c2d7800aa28297e3a9a11c4f6c0f">codes_get_message_size()</a>.</p>

</div>
</div>
<a class="anchor" id="ab7f299aaed48129491cc365a8ca289c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_samples_path </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>samples_path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the samples path. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">samples_path</td><td>samples path </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a13866152bfd07b8cd418f6cf8c73d7ab">codes_index_read()</a>.</p>

</div>
</div>
<a class="anchor" id="acbb0d241a917a3e726792157c1f5d973"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_string </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value for a string key in a grib message. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">value</td><td>string value </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#af13b3e69c2b5ad0ea6b7fd07ac37e367">codes_write()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1ba4d3b6473499af0581cf52eb4cad0b">codes_get()</a>, and <a class="el" href="namespaceec_codes.html#a23859e3fb8802982fe865789d61b181f">codes_release()</a>.</p>

</div>
</div>
<a class="anchor" id="a54b35eededa62b2cb3a32b90060c0f2c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_string_array </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>inarray</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value of the key to a string array. </p>
<p>The input array can be a python sequence like tuple, list, array, ...</p>
<p>The wrapper will internally try to convert the input to a NumPy array before extracting its data and length. This is possible as NumPy allows the construction of arrays from arbitrary python sequences.</p>
<p>The elements of the input sequence need to be convertible to a double.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">key</td><td>key name </td></tr>
    <tr><td class="paramname">inarray</td><td>tuple,list,array </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a6c83d2b9572083c7a83c9c5d39010b14">codes_copy_namespace()</a>, and <a class="el" href="namespaceec_codes.html#a1e9477394be21ac60be3d6841660c137">codes_grib_multi_release()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a0af74e12fba25379db678363f5bdafb3">codes_get_values()</a>, and <a class="el" href="namespaceec_codes.html#ac18c28cc7bd146dad986e03511fb7340">codes_set_double_array()</a>.</p>

</div>
</div>
<a class="anchor" id="abc699d0bb7a7dded968ee0111342ffd0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_set_values </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>gribid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>values</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the contents of the 'values' key. </p>
<p>The input array can be a numpy.ndarray or a python sequence like tuple, list, array, ...</p>
<p>The wrapper will internally try to convert the input to a NumPy array before extracting its data and length. This is possible as NumPy allows the construction of arrays from arbitrary python sequences.</p>
<p>The elements of the input sequence need to be convertible to a double.</p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_clone" target="_blank">grib_clone.py</a>, <a href="https://confluence.ecmwf.int/display/ECC/grib_samples" target="_blank">grib_samples.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">gribid</td><td>id of the grib loaded in memory </td></tr>
    <tr><td class="paramname">values</td><td>array of values to set as tuple, list, array or numpy.ndarray </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ab28f95174ea3e8eb760d4019598ec9e6">codes_index_get_double()</a>, <a class="el" href="namespaceec_codes.html#aeaf2ac58b4a90bd09595986d49228d7c">codes_index_get_long()</a>, and <a class="el" href="namespaceec_codes.html#a19b8c07a5ab06944488e66ce434a615b">codes_index_get_string()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a1250285cb0770393bf6078f3ee3340a2">codes_get_native_type()</a>.</p>

</div>
</div>
<a class="anchor" id="a4b7140ca0dd81372721cffd1d964e4ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_skip_coded </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the coded keys in a keys iterator. </p>
<p>The coded keys are actually coded in the message.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>,<a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>,<a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#afb6f25e55aab91e1cf273403c4151c70">codes_skip_read_only()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#adc7361072916fe6ec52e9cf53f066839">codes_get_string_length()</a>.</p>

</div>
</div>
<a class="anchor" id="a587af29aac21a816f8ffd327a1fce779"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_skip_computed </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the computed keys in a keys iterator. </p>
<p>The computed keys are not coded in the message, they are computed from other keys.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>,<a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>,<a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a57f7a5a0f6975e1357e5aa1dc4715e0c">codes_skip_duplicates()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#ab07293de06d6ef6c5810ea3f01723884">codes_get_size()</a>.</p>

</div>
</div>
<a class="anchor" id="a57f7a5a0f6975e1357e5aa1dc4715e0c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_skip_duplicates </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the duplicate keys in a keys iterator. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>,<a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>,<a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#af3e5c3e1ee4d4b1e2f37862b9de92273">codes_grib_iterator_new()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a587af29aac21a816f8ffd327a1fce779">codes_skip_computed()</a>.</p>

</div>
</div>
<a class="anchor" id="acb01114683ef4aacbf1609eb3a435055"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_skip_edition_specific </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the edition specific keys in a keys iterator. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>,<a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>,<a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a6eedc94ffbffad66b92d3fccfc1ec692">codes_skip_function()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#adc7361072916fe6ec52e9cf53f066839">codes_get_string_length()</a>.</p>

</div>
</div>
<a class="anchor" id="a6eedc94ffbffad66b92d3fccfc1ec692"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_skip_function </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the function keys in a keys iterator. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>,<a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>,<a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#ae2bc65694ff09cdd253ef35f760ef841">codes_grib_iterator_next()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#acb01114683ef4aacbf1609eb3a435055">codes_skip_edition_specific()</a>.</p>

</div>
</div>
<a class="anchor" id="afb6f25e55aab91e1cf273403c4151c70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_skip_read_only </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>iterid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Skip the read_only keys in a keys iterator. </p>
<p>Read only keys cannot be set.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="namespaceec_codes.html#a199fb77e1395975be732e46f93b3e337" title="Create a new iterator on the keys. ">codes_keys_iterator_new</a>,<a class="el" href="namespaceec_codes.html#af2eecea5df157516fb60556cbd1283cd" title="Advance to the next keys iterator value. ">codes_keys_iterator_next</a>,<a class="el" href="namespaceec_codes.html#a83a077fb2dda1e7f1d317039fc7267d1" title="Delete a keys iterator and free memory. ">codes_keys_iterator_delete</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iterid</td><td>keys iterator id </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a18cdf4111053dc0c387a5fbddb0aaf30">codes_grib_iterator_delete()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#a4b7140ca0dd81372721cffd1d964e4ad">codes_skip_coded()</a>.</p>

</div>
</div>
<a class="anchor" id="af13b3e69c2b5ad0ea6b7fd07ac37e367"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">def ecCodes.codes_write </td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>msgid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>fileobj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write a message to a file. </p>
<p><b>Examples:</b> <a href="https://confluence.ecmwf.int/display/ECC/grib_set_keys" target="_blank">grib_set_keys.py</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">msgid</td><td>id of the message loaded in memory </td></tr>
    <tr><td class="paramname">fileobj</td><td>python file object </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">CodesInternalError</td><td></td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="namespaceec_codes.html#a956a6f84f7b418551cd6c4976c970140">codes_grib_multi_append()</a>.</p>

<p>Referenced by <a class="el" href="namespaceec_codes.html#acbb0d241a917a3e726792157c1f5d973">codes_set_string()</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
